﻿/* 
Copyright (c) 2009, Aaron Moline <Aaron.Moline@MolineSoftware.com>

Permission is hereby granted, free of charge, to any person 
obtaining a copy of this software and associated documentation 
files (the "Software"), to deal in the Software without restriction, 
including without limitation the rights to use, copy, modify, merge, 
publish, distribute, sublicense, and/or sell copies of the Software, 
and to permit persons to whom the Software is furnished to do so, 
subject to the following conditions:

The above copyright notice and this permission notice shall be 
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
DEALINGS IN THE SOFTWARE.
*/
using System;
using CookComputing.XmlRpc;

namespace MolineSoftware.DrupalXmlRpc
{
    //TODO: Define better descriptions

    /// <summary>
    /// Struct: Drupal Book node type.
    /// </summary>
    [XmlRpcMissingMapping(MappingAction.Ignore)]
    public class DrupalBook
    {
        #region | Public Properties |
        /// <summary>
        /// Gets or Sets the MLID
        /// </summary>
        [XmlRpcMember(Description = "", Member = "mlid")]
        public string MLID { get; set; }

        /// <summary>
        /// Gets or Sets the node id
        /// </summary>
        [XmlRpcMember(Description = "", Member = "nid")]
        public string NodeID { get; set; }

        /// <summary>
        /// Gets or Sets the BID
        /// </summary>
        [XmlRpcMember(Description = "", Member = "bid")]
        public string BID { get; set; }

        /// <summary>
        /// Gets or Sets the MenuName
        /// </summary>
        [XmlRpcMember(Description = "", Member = "menu_name")]
        public string MenuName { get; set; }

        /// <summary>
        /// Gets or Sets the PLID
        /// </summary>
        [XmlRpcMember(Description = "", Member = "plid")]
        public string PLID { get; set; }
        
        /// <summary>
        /// Gets or Sets the LinkPath
        /// </summary>
        [XmlRpcMember(Description = "", Member = "link_path")]
        public string LinkPath { get; set; }
        
        /// <summary>
        /// Gets or Sets the router path
        /// </summary>
        [XmlRpcMember(Description = "", Member = "router_path")]
        public string RouterPath { get; set; }

        /// <summary>
        /// Gets or Sets the Link Title
        /// </summary>
        [XmlRpcMember(Description = "", Member = "link_title")]
        public string LinkTitle { get; set; }

        /// <summary>
        /// Gets or Sets the options
        /// </summary>
        [XmlRpcMember(Description = "", Member = "options")]
        public XmlRpcStruct Options { get; set; }

        /// <summary>
        /// Gets or Sets the Module
        /// </summary>
        [XmlRpcMember(Description = "", Member = "module")]
        public string Module { get; set; }

        /// <summary>
        /// Gets or Sets the Hidden status
        /// </summary>
        [XmlRpcMember(Description = "", Member = "hidden")]
        public string Hidden { get; set; }

        /// <summary>
        /// Gets or Sets External
        /// </summary>
        [XmlRpcMember(Description = "", Member = "External")]
        public string External { get; set; }

        /// <summary>
        /// Gets or Sets HasChildren
        /// </summary>
        [XmlRpcMember(Description = "", Member = "has_childre")]
        public string HasChildren { get; set; }

        /// <summary>
        /// Gets or Sets Expaned
        /// </summary>
        [XmlRpcMember(Description = "", Member = "expanded")]
        public string Expanded { get; set; }

        /// <summary>
        /// Gets or Sets Weight
        /// </summary>
        [XmlRpcMember(Description = "", Member = "weight")]
        public string Weight { get; set; }

        /// <summary>
        /// Gets or Sets Depth
        /// </summary>
        [XmlRpcMember(Description = "", Member = "depth")]
        public string Depth { get; set; }

        /// <summary>
        /// Gets or Sets the Customized 
        /// </summary>
        [XmlRpcMember(Description = "", Member = "customized")]
        public string Customized { get; set; }

        /// <summary>
        /// Gets or Sets the P1 
        /// </summary>
        [XmlRpcMember(Description = "", Member = "p1")]
        public string P1 { get; set; }

        /// <summary>
        /// Gets or Sets the P2
        /// </summary>
        [XmlRpcMember(Description = "", Member = "p2")]
        public string P2 { get; set; }

        /// <summary>
        /// Gets or Sets the P3
        /// </summary>
        [XmlRpcMember(Description = "", Member = "p3")]
        public string P3 { get; set; }

        /// <summary>
        /// Gets or Sets the P4
        /// </summary>
        [XmlRpcMember(Description = "", Member = "p4")]
        public string P4 { get; set; }

        /// <summary>
        /// Gets or Sets the P5
        /// </summary>
        [XmlRpcMember(Description = "", Member = "p5")]
        public string P5 { get; set; }

        /// <summary>
        /// Gets or Sets the P6
        /// </summary>
        [XmlRpcMember(Description = "", Member = "p6")]
        public string P6 { get; set; }

        /// <summary>
        /// Gets or Sets the P7
        /// </summary>
        [XmlRpcMember(Description = "", Member = "p7")]
        public string P7 { get; set; }

        /// <summary>
        /// Gets or Sets the P8
        /// </summary>
        [XmlRpcMember(Description = "", Member = "p8")]
        public string P8 { get; set; }

        /// <summary>
        /// Gets or Sets the P9
        /// </summary>
        [XmlRpcMember(Description = "", Member = "P9")]
        public string P9 { get; set; }

        /// <summary>
        /// Gets or Sets the Updated
        /// </summary>
        [XmlRpcMember(Description = "", Member = "updated")]
        public string Updated { get; set; }

        /// <summary>
        /// Gets or Sets the Href
        /// </summary>
        [XmlRpcMember(Description = "", Member = "href")]
        public string HRef { get; set; }

        /// <summary>
        /// Gets or Sets the Title
        /// </summary>
        [XmlRpcMember(Description = "", Member = "title")]
        public string Title { get; set; }
        #endregion

    }
}
